package bintree.map_set.LeetCode;

import java.util.HashSet;
import java.util.Locale;
import java.util.Scanner;
import java.util.Set;

/**
 * 思路：第一次输入的是实际字符串，不完整的。第二次输入的是期望字符串，是完整全面的。
 *  先用Set集合对实际字符串去重录入。然后再对期望字符串遍历，如果遇到Set集合里面
 *  没有的字符，就在屏幕打印，并把这个没有的字符录入Set里面，下次再遇到就不打印了。
 */

//坏的的键盘
public class BadKey_牛客题 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str1 = null;//应该输入的文字
        String str2 = null;//实际被输入的文字
        //判断输入是否有效
        if(scanner.hasNextLine()){
            str2 = scanner.nextLine();//录入期望字符串，多的那个
            str1 = scanner.nextLine();//录入实际字符串，少的那个
        }
        //输出的字符需要大写，就把两个字符串转为大写出来
        str1 = str1.toUpperCase();
        str2 = str2.toUpperCase();

        //用Set对输入的字母去重
        Set<Character> set = new HashSet<>();//应该输入的
        for (int i = 0; i < str1.length(); i++) {
            set.add(str1.charAt(i));
        }
        //遍历期望字符串
        for (int i = 0; i < str2.length(); i++) {
            char ch = str2.charAt(i);
            if(!set.contains(ch)){
                //如果这个字符set里面没有就打印录入
                set.add(ch);
                System.out.print(ch);
            }
        }

    }
}
